﻿using System;
using System.Collections.Generic;
using System.Text;

namespace GraffitiExtras.Plugins.CommunityCredit
{
    /// <summary>
    /// Represents a prize.
    /// </summary>
    internal class Prize
    {
        #region Properties and fields

        /// <summary>
        /// Unique identifier.
        /// </summary>
        public int ID { get; set; }

        /// <summary>
        /// The name of the prize.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// The subtitle of the prize.
        /// </summary>
        public string Subtitle { get; set; }

        /// <summary>
        /// The points achieved to win the prize.
        /// </summary>
        public string WinningPoints { get; set; }

        /// <summary>
        /// The description fo the prize.
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// The name of the winner of the prize.
        /// </summary>
        public string Winner { get; set; }

        /// <summary>
        /// The image file path of the prize.
        /// </summary>
        public string ImagePath { get; set; }

        /// <summary>
        /// The thumbnail image file path of the prize.
        /// </summary>
        public string ThumbnailPath { get; set; }

        /// <summary>
        /// The unique identiifer of the content for the prize.
        /// </summary>
        public int ContestID { get; set; }

        /// <summary>
        /// The type of the prize.
        /// </summary>
        public string Type { get; set; }

        /// <summary>
        /// Determines of the prize is active.
        /// </summary>
        public bool Active { get; set; }

        /// <summary>
        /// An integer value for the order of the prize in display.
        /// </summary>
        public int DisplayOrder { get; set; }

        /// <summary>
        /// The value of the prize (in US dollars).
        /// </summary>
        public decimal Value { get; set; }

        /// <summary>
        /// The source of the prize.
        /// </summary>
        public string Source { get; set; }

        /// <summary>
        /// Determines of the prize is sent to winner.
        /// </summary>
        public bool Sent { get; set; }

        /// <summary>
        /// The date when the prize is sent to winner.
        /// </summary>
        public DateTime SentDate { get; set; }

        /// <summary>
        /// Deliver notes for the prize.
        /// </summary>
        public string DeliveryNotes { get; set; }

        /// <summary>
        /// The mail code of the winner.
        /// </summary>
        public string MailCode { get; set; }

        /// <summary>
        /// Determines if the prize is ordered.
        /// </summary>
        public bool Ordered { get; set; }

        /// <summary>
        /// Determines if the prize is delivered to winner.
        /// </summary>
        public bool Delivered { get; set; }

        /// <summary>
        /// Determines of the award is delivered to winner.
        /// </summary>
        public bool AwardDelivered { get; set; }

        /// <summary>
        /// The winner's city.
        /// </summary>
        public string WinnerCity { get; set; }

        /// <summary>
        /// The winner's state.
        /// </summary>
        public string WinnerState { get; set; }

        /// <summary>
        /// The winner's ZIP code.
        /// </summary>
        public string WinnerZip { get; set; }

        /// <summary>
        /// The winner's country.
        /// </summary>
        public string WinnerCountry { get; set; }

        /// <summary>
        /// The winner's address.
        /// </summary>
        public string WinnerAddress { get; set; }

        /// <summary>
        /// The date when the prize is ordered for shipping.
        /// </summary>
        public DateTime DateOrdered { get; set; }

        /// <summary>
        /// The date when the prize is sent.
        /// </summary>
        public DateTime DateSent { get; set; }

        /// <summary>
        /// The date when the prize is received.
        /// </summary>
        public DateTime DateReceived { get; set; }

        /// <summary>
        /// The status of the prize.
        /// </summary>
        public string Status { get; set; }

        /// <summary>
        /// The shipping code for the prize.
        /// </summary>
        public string ShippingCode { get; set; }

        /// <summary>
        /// The name of the shipper.
        /// </summary>
        public string Shipper { get; set; }

        /// <summary>
        /// The order number of the prize.
        /// </summary>
        public string OrderNumber { get; set; }

        /// <summary>
        /// Determines if the prize is invoiceable.
        /// </summary>
        public bool Invoiceable { get; set; }

        #endregion
    }
}
